home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / et / et-2_2.lha / et2.2 / src / String.h < prev    next >
C/C++ Source or Header  |  1990-12-06  |  3KB  |  79 lines

  1. #ifndef String_First
  2. #ifdef __GNUG__
  3. #pragma once
  4. #endif
  5. #define String_First
  6.  
  7. #include "Types.h"
  8. #include "Storage.h"
  9. #include "CType.h"
  10.  
  11. extern "C" {
  12.     // standard string operations
  13.     extern char* strcat(char*, const char*);
  14.     extern char* strncat(char*, const char*, int);
  15.     extern int strcmp(const char*, const char*);
  16.     extern int strncmp(const char*, const char*, int);
  17.     extern char* strcpy(char*, const char*);
  18.     extern char* strncpy(char*, const char*, int);
  19.     extern int strlen(const char*);
  20.     
  21. #ifndef __GNUG__
  22.     // bsd byte string operations
  23.     extern void bcopy(const char*, char*, int);
  24.     extern void bzero(char*, int);
  25.     extern int bcmp(const char*, const char*, int);
  26.  
  27.     extern char* index(const char*, int);
  28.     extern char* rindex(const char*, int);
  29. #endif
  30.  
  31. #ifndef HAVE_VPRINTF
  32.     extern char *vsprintf(char*, const char*, va_list);
  33.     extern char* sprintf(char*, const char*, ...);
  34.     extern int sscanf(char*, const char*, ...);
  35. #endif /* HAVE_VPRINTF */   
  36.     
  37.     extern int atoi(const char*);
  38.     extern double atof(const char*);
  39.     extern long atol(const char*);
  40.     
  41.     char* strsave(char *s, int l= -1); 
  42.     // allocate a buffer and copy 's'
  43.     
  44.     int StuffChar(char *src, char *dst, int dstlen, char* specchars, char stuffchar);
  45.  
  46. }
  47.  
  48. #define memcpy(s1, s2, n) bcopy(s2, s1, n)
  49. #define BCOPY(a,b,c) bcopy((const char*)a,(char*)b,c)
  50. #define BCMP(a,b,c) bcmp((const char*)a,(char*)b,c)
  51.  
  52. // string utilites
  53. extern char* strprintf(char *fmt, ...);   
  54.     // allocate a buffer and copy the string specified in fmt a la printf
  55.                                     
  56. extern char* strvprintf(char*, va_list);
  57. extern char* strreplace(char**dst, char*src, int l= -1);
  58.     // replace dst with src, expanding dst if necessary  
  59. extern char* strfreplace(char**, char *fmt, va_list);
  60. extern bool  strismember(const char *s, ...);
  61.     // return TRUE when s equals one of the following arguments
  62. extern char *strquotechar(byte ch, char *bufp);
  63. extern char* strn0cpy(char*, const char*, int);
  64.     // strncpy which establises always a terminating 0 byte
  65.  
  66. extern StrCmp(byte*, byte*, int l= -1, byte *map= 0);
  67. extern byte sortmap[], identitymap[];
  68.  
  69. // utilites to store strings in ET++ format
  70. extern istream &ReadString(istream &i, byte **s, int *lp= 0);
  71. extern ostream &PrintString(ostream &o, byte *s, int l= -1);
  72. extern void PutHex(ostream &ofp, byte b, int *col= 0);
  73. extern byte GetHex(istream &ofp);
  74. extern char *BaseName(char *pathname);  
  75. extern char *form(const char *fmt, ...);     // printf format
  76.  
  77. #endif String_First
  78.  
  79.